package com.gun.management.module.task.controller.admin.taskInfo.vo;

import com.alibaba.excel.annotation.ExcelProperty;
import lombok.*;
import java.util.*;
import io.swagger.v3.oas.annotations.media.Schema;
import com.gun.management.framework.common.pojo.PageParam;
import org.springframework.format.annotation.DateTimeFormat;

import jakarta.validation.constraints.*;
import java.time.LocalDateTime;

import static com.gun.management.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;

@Schema(description = "管理后台 - 任务信息分页 Request VO")
@Data
@EqualsAndHashCode(callSuper = true)
@ToString(callSuper = true)
public class TaskInfoPageReqVO extends PageParam {

    @Schema(description = "任务图标", example = "http://***.com/images/test.png")
    private String avatar;

    @Schema(description = "任务名称", example = "邀请注册任务")
    private String name;

    @Schema(description = "任务简介", example = "2025年邀请注册任务")
    private String taskIntroduct;

    @Schema(description = "任务类型(1-邀请新用户 2-应用市场评价 3-参与活动 4-分享微信好友  5-分享朋友圈)", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
    private Long categoryId;

    @Schema(description = "奖励积分", example = "10")
    private Integer rewardScore;

    @Schema(description = "每天奖励次数", example = "20")
    private Integer dayRewardTimes;

    @Schema(description = "累计最多奖励次数", example = "100")
    private Integer maxRewardTimes;

    @Schema(description = "按钮名称", example = "邀请注册")
    private String buttonName;

//    @Schema(description = "跳转URL地址", example = "https://www.iocoder.cn")
//    private String jumpUrl;

    @Schema(description = "状态(0-启用 1-禁用)", example = "1")
    private Integer status;



    /**
     * 跳转功能函数类型(对应数据字典function_type)
     */
    @Schema(description = "跳转功能函数类型(shareTo-分享好友或朋友圈 jumpToAppStore-跳转应用市场  pushWindow-跳转APP内页 getSessionID-授权登录 loginExceptionHandle-登录异常处理)", example = "shareTo")
    private String functionType;

    /**
     * 内容类型(对应数据字content_type)
     */
    @Schema(description = "内容类型(01-分享微信好友纯文本 02-分享微信好友图片 03-分享微信好友链接 11-分享朋友圈纯文本 12-分享朋友圈图片 13-分享朋友圈链接)", example = "02")
    private String contentType;

    @Schema(description = "详细规则")
    private String content;

    @Schema(description = "备注", example = "你说的对")
    private String remark;

    @Schema(description = "创建时间")
    @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
    private LocalDateTime[] createTime;


    /**
     * 排序号
     */
    @Schema(description = "排序号")
    private Integer seqNo;

}